package com.ruoyi.service.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * @author Zane
 * @since 2025-09-27
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_user")
public class UserEntity implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 用户ID
   */
  @TableId(value = "user_id", type = IdType.AUTO)
  private Long userId;

  /**
   * 部门ID
   */
  @TableField("dept_id")
  private Long deptId;

  /**
   * 姓名
   */
  @TableField("name")
  private String name;

  /**
   * 用户账号
   */
  @TableField("user_name")
  private String userName;


  /**
   * 用户昵称
   */
  @TableField("nick_name")
  private String nickName;

  /**
   * 用户类型（U0 平台用户 U1 项目方用户 U2 劳务方用户 ）
   */
  @TableField("user_type")
  private String userType;

  /**
   * 身份证号码
   */
  @TableField("id_number")
  private String idNumber;

  /**
   * 用户邮箱
   */
  @TableField("email")
  private String email;

  /**
   * 手机号码
   */
  @TableField("phone")
  private String phone;

  /**
   * 用户性别（0男 1女 2未知）
   */
  @TableField("sex")
  private String sex;

  /**
   * 头像地址
   */
  @TableField("avatar")
  private String avatar;

  /**
   * 密码
   */
  @TableField("password")
  private String password;

  /**
   * 帐号状态（0待审核  1审核通过 2 审核拒绝）
   */
  @TableField("status")
  private Integer status;

  /**
   * 认证标记 0 否 1 是
   */
  @TableField("auth_flag")
  private Integer authFlag;
  /**
   * 封号 标记 0 未封号 1 封号
   */
  @TableField("ban_flag")
  private Integer banFlag;
  /**
   * 删除标志（0代表存在 1代表删除）
   */
  @TableField("del_flag")
  private Integer delFlag;

  /**
   * 最后登录IP
   */
  @TableField("login_ip")
  private String loginIp;

  /**
   * 最后登录时间
   */
  @TableField("login_time")
  private LocalDateTime loginTime;

  /**
   * 创建者
   */
  @TableField("create_by")
  private String createBy;

  /**
   * 创建时间
   */
  @TableField("create_time")
  private LocalDateTime createTime;

  /**
   * 更新者
   */
  @TableField("update_by")
  private String updateBy;

  /**
   * 更新时间
   */
  @TableField("update_time")
  private LocalDateTime updateTime;

  /**
   * 备注
   */
  @TableField("remark")
  private String remark;


}
